今天這篇文章如標題所言,就是要來說這個題目的,當然不需要說服的就直接等下一天就好了,不過我為什麼要特地打這篇,那是因為有不少人剛學程式時,其實不理解為什麼物件導向跟設計模式的重要,明明遊戲跑得動就好了啊,關心這種事情幹甚麼?
當然,如果今天專案只是一次性的、沒打算在打開來使用的話,那今天就算這個Class有一萬多行程式碼、功能散在各種區塊都沒關係—反正也不會再開了不是嗎?
不過要是今天這款遊戲賣的出奇的好,想要延伸玩法卻驚覺之前的程式碼是多麼雜亂不堪,以至於想要改程式碼時不知如何下手,結果最後續作的計畫已失敗告終—這不是一件很可惜的事情嗎?
認真回想以往有玩過的遊戲,瑪利歐也好、薩爾達也罷,他們的系統不都是一次又一次迭代出來的嗎?總不可能每一代程式碼都重新寫一次吧?
更何況在這個時代,市場的變化是非常迅速的,光是載體就從遊戲機到電腦在到手機、或者現在輔助/主要增加體感體驗的VR、AR,或者什麼付費形式從買斷到轉蛋到最近在推行的訂閱制,甚至其他元宇宙NFT的東西,雖然它們都不一定跟製作遊戲直接相關,卻深深影響到遊玩遊戲的方式。在這麼劇烈的變化下,程式如果沒有相對應的彈性,遊戲是很難在這個環境下存在下去的。
以比較程式面來說的話,現在已經不像以往需要從零開始的把遊戲建構出來,只要選一個適當的遊戲引擎、並配合恰當的插件或工具,就可以少少幾人開發出十幾年前要上百人才能製作出來的遊戲規格,但也因為這樣,程式的架構更要擁有可以隨時替換工具跟引擎的能力。
不過這系列都已經叫做「如何在Unity裡寫出具有一定擴充性的遊戲」,所以自然還是會以Unity擁有的特性的方向去寫,不過我相信只要拆得夠好的話還是可以兼具使用Unity功能的好處跟具有更換開發平台這個能力。